package utils;

import java.io.UnsupportedEncodingException;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class Email_Password {
	private static final String HOST = "smtp.gmail.com";
	private static final int PORT = 465;
	private static final String PASSWORD = "superschronisko";
	private static final String FROM = "eschronisko@gmail.com";

	public static void SendPasswordMail(String email, String temp_password,String url)
			throws UnsupportedEncodingException {
		/* defaultowe ustawienia serwera gmail */
		Properties props = new Properties();
		props.put("mail.smtp.host", HOST);
		props.put("mail.smtp.auth", "true");
		props.put("mail.smtp.port", PORT);
		props.put("mail.smtp.socketFactory.port", PORT);
		props.put("mail.smtp.socketFactory.class",
				"javax.net.ssl.SSLSocketFactory");

		/*
		 * Pobieranie obiektu klasy session jako instancje domyslna -
		 * inicjalizacja sesji
		 */
		/*
		 * pierwszy parametr to dane naszej skrzynki - obiekt props, drugi
		 * parametr jest z klasy Authenticator
		 */
		/*
		 * implementuja one metode getPasswordAuthentication() zwracajaca
		 * obiekty klasy PasswordAuthentication - w celu okreslenia interfejsu
		 * zapytan o haslo
		 */
		Session session = Session.getDefaultInstance(props,
				new javax.mail.Authenticator() {
					protected PasswordAuthentication getPasswordAuthentication() {
						return new PasswordAuthentication(FROM, PASSWORD);
					}
				});
		try {
			/*
			 * Message - obiekty tej klasy reprezentuj� wiadomo�ci
			 * zakodowane zgodnie ze stadardem MIME. Konstruktor przyjmuje jako
			 * parametr obiekt typu Session
			 */
			Message message = new MimeMessage(session);
			message.setFrom(new InternetAddress(FROM, "eSchronisko")); // nadawca
			message.setRecipient(Message.RecipientType.TO, new InternetAddress(
					email)); // odbiorca
			message.setSubject("Witaj w eSchronisku - Przypomnienie hasla"); // temat
																			// wiadomosci
			/* tresc wiadomosci */
			message.setContent(
					"<h3>Witamy ! </h3><br>"
							+ "Twoje tymczasowe haslo to: <br>"
							+ temp_password + "<br /> "
							+ "<br><br>Kliknij <a href='"+url+"'>tutaj</a>, aby przeniesc sie na strone glowna schroniska."
							+ "<br><br><br>Zaloga eSchronisko",
					"text/html; charset=utf-8");

			Transport.send(message); // wysylanie maila

		} catch (MessagingException e) { // zg�oszenie wyj�tku
			System.err.println("Blad z wiadomoscia: " + e.getMessage()); // wypisz wyjątek
		}
	}

}
